package de.andreavicentini.teatralia.pages;

import org.magiclabs.htmlx.ILayout;

import de.andreavicentini.teatralia.generate.Layout;
import de.andreavicentini.teatralia.generate.LayoutVertical;


public interface Style {
	String getFooterBackground();
	String getTitleForeground();
	String getBodyBackground();
	String getBodyBorders();
	String getContentBackground();
	String getContentForeground();
	String getContentPadding();
	String getContentMargins();
	String getWindowsContentBackground();
	String getWindowsContentForeground();
	String getWindowsBorder();
	String getSpecialWindowsBorder();
	String getWindowsBorderThickness();
	String getWindowsHeaderBorder();
	String getWindowsHeaderForeground();
	String getWindowsHeaderBackground();
	String getSpecialWindowsHeaderBackground();
	String getWindowsHeaderFontSize();
	String getFooterLinksHoverBackground();
	String getFooterLinksColor();
	String getLogoBackground();
	String getLogoForeground();
	String getFotoForeground();
	String getFotoBackground();
	String getFotoHover();
	ILayout getLayout();
	
	/*
	 * (1) sito standard
	 */
	class OldColors implements Style {
		private final String primaryBackgroundColor;
		public OldColors(String primaryBackgroundColor) {
			this.primaryBackgroundColor = primaryBackgroundColor;
		}
		public OldColors() { this("salmon"); }
		public String getBodyBackground() { return "black"; }
		public String getBodyBorders() { return "border:0px"; }
		public String getFooterBackground() { return this.primaryBackgroundColor; }
		public String getContentBackground() { return "black"; }
		public String getContentForeground() { return "white"; }
		public String getContentPadding() { return "padding: 0px"; }
		public String getContentMargins() { return "margin-top:0; margin-left: 15%; margin-bottom:0; margin-right:15%"; }
		public String getWindowsContentBackground() { return "black"; }
		public String getWindowsContentForeground() { return "lightgreen"; }
		public String getWindowsBorder() { return this.primaryBackgroundColor; }
		public String getSpecialWindowsBorder() { return "green"; }
		public String getSpecialWindowsHeaderBackground() { return "green"; }
		public String getWindowsBorderThickness() { return "2"; }
		public String getWindowsHeaderBorder() { return "border-bottom: 1px " + this.primaryBackgroundColor + " solid"; }
		public String getWindowsHeaderFontSize() { return "10"; }
		public String getWindowsHeaderForeground() { return "black"; }
		public String getWindowsHeaderBackground() { return this.getWindowsBorder(); }
		public String getFooterLinksHoverBackground() { return "lightgrey"; }
		public String getFooterLinksColor() { return "blue"; }
		public String getTitleForeground() { return "black"; }
		public String getLogoForeground() { return "black"; }
		public String getLogoBackground() { return this.getFooterBackground(); }
		public String getFotoBackground() { return "blue"; }
		public String getFotoForeground() { return "black"; }
		public String getFotoHover() { return "pink"; }
		public ILayout getLayout() { return new Layout(); }
	}
	
	/*
	 * con colori come piace a me (3) TODO banda nera ai lati
	 */
	class WhiteBackgroundColors implements Style {
		public String getFooterBackground() { return "snow"; }
		public String getBodyBackground() { return "snow"; }
		public String getBodyBorders() { return "border:0px"; }
		public String getContentBackground() { return "snow"; }
		public String getContentForeground() { return "black"; }
		public String getContentPadding() { return "padding: 0px"; }
		public String getContentMargins() { return "margin-top:0;\nmargin-left: 15%;\nmargin-bottom:0;\nmargin-right:15%"; }
		public String getFooterLinksHoverBackground() { return "pink"; }
		public String getFooterLinksColor() { return "blue"; }
		public String getWindowsContentBackground() { return "snow"; }
		public String getWindowsContentForeground() { return "black"; }
		public String getWindowsBorder() { return "pink"; }
		public String getWindowsBorderThickness() { return "5"; }
		public String getWindowsHeaderForeground() { return "black"; }
		public String getWindowsHeaderBackground() { return this.getWindowsBorder(); }
		public String getWindowsHeaderBorder() { return "border-bottom: 0px"; }
		public String getWindowsHeaderFontSize() { return "12"; }
		public String getSpecialWindowsBorder() { return "blue"; }
		public String getSpecialWindowsHeaderBackground() { return this.getSpecialWindowsBorder(); }
		public String getTitleForeground() { return "blue"; }
		public String getLogoForeground() { return "black"; }
		public String getLogoBackground() { return this.getFooterBackground(); }
		public String getFotoBackground() { return "blue"; }
		public String getFotoForeground() { return "black"; }
		public String getFotoHover() { return "pink"; }
		public ILayout getLayout() { return new Layout(); }
	}
	
	/*
	 * (2)
	 */
	class InterColors extends OldColors {
		public InterColors() { super("blue"); }
		public String getWindowsBorderThickness() { return "10"; }
		public String getWindowsContentBackground() { return "snow"; }
		public String getWindowsContentForeground() { return "black"; }
		public String getTitleForeground() { return "black"; }
		public String getFooterLinksColor() { return "black"; }
	}
	
	/*
	 * con finestre piene
	 */
	class VariationOn_WhiteBackgroundColors extends WhiteBackgroundColors {
		public String getWindowsContentBackground() { return "pink"; }
		public String getWindowsHeaderBorder() { return "border-bottom: 1px gray solid"; }
	}
	
	/*
	 * senza finestre (4)
	 */
	class WithoutWindowsOnWhiteBackgroundColors extends WhiteBackgroundColors {
		public String getBodyBackground() { return "darkred"; }
		public String getBodyBorders() { return "border:0px"; }
		public String getContentBackground() { return "LightGoldenRodYellow"; }
		public String getContentPadding() { return "padding: 20px 20px 0px 20px"; }
		public String getContentMargins() { return "margin-top:0;\nmargin-left: 0;\nmargin-bottom:0;\nmargin-right:0"; }
		public String getWindowsContentBackground() { return "LightGoldenRodYellow"; }
		public String getWindowsHeaderBorder() { return "border-bottom: 1px black solid"; }
		public String getWindowsHeaderBackground() { return "darksalmon"; }
		public String getWindowsHeaderForeground() { return "black"; }
		public String getSpecialWindowsBorder() { return "LightGoldenRodYellow"; }
		public String getSpecialWindowsHeaderBackground() { return "rosybrown"; }
		public String getWindowsBorder() { return "LightGoldenRodYellow"; }
		public String getFooterBackground() { return "darkred"; }
		public String getFooterLinksColor() { return "LightGoldenRodYellow"; }
		public String getFooterLinksHoverBackground() { return this.getWindowsHeaderBackground(); }
		public String getLogoForeground() { return "LightGoldenRodYellow"; }
		public String getLogoBackground() { return this.getFooterBackground(); }
		public String getTitleForeground() { return "black"; }
		public String getFotoBackground() { return "lightblue"; }
		public String getFotoForeground() { return "black"; }
		public String getFotoHover() { return this.getFooterLinksHoverBackground(); }
		public ILayout getLayout() { return new LayoutVertical(); }
	}

	
}

/*
 * TODO
 * 
 * 1) getTitle contrato!!
 * 
 * 2) ToggleHeader da' problemi su IE
 * 
*/






